草庐IT

optimization - gcc 内存对齐编译指示

全部标签

javascript - Node.js 中稀疏数组的内存消耗

我写了一个生成数组的小程序,它运行了很长时间(几乎永远;-)):varresults=[];vari=1;while(true){console.log(i++);results.push([]);}当我创建一个长度为i的稀疏数组而不是空数组时,程序崩溃得非常快:varresults=[];vari=1;while(true){console.log(i);results.push(newArray(i++));}实际上我达到i等于17424,然后我收到一条错误消息告诉我FATALERROR:CALL_AND_RETRY_LASTAllocationfailed-processouto

javascript - 使用具有高级优化功能的 Closure 编译器时如何在 javascript 中保留全局变量?

我有自己的Javascript库,我想通过使用具有高级优化功能的Google闭包编译器来缩小它。通过查看docs我看到了如何声明在库外使用的函数。但是我找不到一种方法来保存在我的库中声明的全局变量。Closure编译器只是删除它们,因为它认为它们从未被使用过。有人可以帮忙吗?编辑:示例代码:varvariable_1=true;这是在我的库开始时全局定义的,但它从未在库本身中使用过。当它包含在某些页面中时,它会在库外使用。但是Closure编译器不知道,这就是它删除这些声明的原因。 最佳答案 闭包编译器无法移除声明为window["

javascript - Google Closure 编译器解析错误 : invalid property id for `css({float:' left'})`

我正在使用GoogleClosureCompiler应用程序(命令行界面)。当我运行它时,出现以下错误。deploy/js/Home.js:40:ERROR-Parseerror.invalidpropertyidthis.$images.wrapAll('').css({float:'left'});^1error(s),0warning(s) 最佳答案 我相信你需要做:{'float':'left'}这是因为float在listofJavakeywordsreservedbyJavaScript上,因此它不能用作属性名称。这在较

javascript - Javascript 是编译还是两次解释?

我是一名公认的新手JavaScript程序员,正在尝试学习更多知识。所以我向你们求助,带着这个简单的问题:)。我正在阅读的O'Reilly书一直提到JavaScript代码的编译时间。我对函数式编程(方案等)的了解告诉我,JavaScript实际上是由浏览器解释的,很可能需要通过JavaScript两次。我的评估有误吗?或者这本书引用的编译时间实际上只是解释器的第一遍,类似于Perl或Python的运行方式?谢谢! 最佳答案 它依赖于浏览器。查看WebKit的SquirrelFishExtreme和GoogleV8以了解最快的结果,

javascript - 在元素中使用 Node.js 作为独立的 LESS 编译器?

我一直在尝试合并lessc大型元素中的编译器具有Bootstrap的基本设置,它只会导致各种编译错误(每个人都有不同解决方案的门票)。没有一个解决方案能满足我的需求,这是一种通过命令行编译less-pile的方法。我通过node.js编译了各种其他Assets,并希望用less做同样的事情,但我发现关于这个主题的每个googlepage都是Node.js+Express,这不是我想要的。我想要一个独立的编译器。(想法:require.jsr.js文件)我找到了Node-less但它已经2年没有更新了,因此并不理想。所以。问题:是否有命令行方式可以使用node.js编译less-file

javascript - setTimeout() 如何在此代码中造成内存泄漏?

我正在审阅此演示文稿中的幻灯片:http://slid.es/gruizdevilla/memory在其中一张幻灯片中,显示此代码时会提示它会造成内存泄漏:varbuggyObject={callAgain:function(){varref=this;varval=setTimeout(function(){ref.callAgain();},1000);}}buggyObject.callAgain();buggyObject=null;有人可以在这里更详细地解释这个问题吗?我可能在这里遗漏了一些细微之处。 最佳答案 这绝对是内

javascript - 将内存预分配给对象数组

我有一个数组声明为vararr=newArray();然后我有一组由服务器返回的对象。这个数组中的每个对象都有三个字段(总是)。我必须遍历它并有条件地添加到arr数组。由于此arr未预先分配,因此它会影响主数组中大量数据的性能。有什么方法可以在我获得主响应数组后预先分配arr数组,从而避免此性能问题?另外,如何获取对象的大小?谢谢。 最佳答案 假设您有10个对象,您要将每个对象的三个值传递给一个数组。您可以通过将整数30传递给Array构造函数来初始化长度为30(10*3)的数组:varnumObjects=10;varmyArra

javascript - Node.js 获取内存使用率高的通知

我有一个在AmazonEC2上的Ubuntu14上运行的Node.js应用程序。我想在内存使用量达到特定大小时发送电子邮件。我知道PM2公开了一个API,除其他外,该API允许在达到一定的内存使用量时重新启动应用程序。现在我不想在此时重新启动应用程序,只是为了获得有关它的通知,并随心所欲地使用它(在我的例子中,发送电子邮件)。我如何使用PM2或任何其他免费工具来完成它? 最佳答案 答案是使用AWSCloudWatch警报。他们是freetiereligible并有一个漂亮的仪表板。内部描述了详细设置thisdocumentation

javascript - const 与内联字符串文字,编译优化

这不是问题,而是基于代码结构对V8优化的探索。我和另一位开发人员正在就V8的编译优化争论conststringliteralvsinlinestringliteral的值(value)。当然,假设我们始终处于严格模式。这里有一些代码示例放在上下文中:常量constNAME="something";functiondoSomething(s){returnNAME+s;}对比内联字符串functiondoSomething(s){return"something"+s;}我们的共识:-const为魔法值提供更多上下文,从而简化维护。我们不同意的地方:我说const的使用允许V8编译时优化

javascript - 动态与静态编译器 (JavaScript)

我目前正在用ANTLR+Java编写一个JavaScript编译器。我在StackOverflow上阅读了有关如何继续执行的问题-答案始终是动态语言的静态编译(没有JIT信息)太难了-但为什么是这样吗?当然存在明显的“类型解析”问题,在JavaScript中可能是eval函数的问题——但还有其他原因吗?(因为它们似乎不太难克服纯静态(无JITS))我排除了基于JIT的编译,因为我认为这对我来说太难实现了。我在编写带有字节码执行的静态编译器方面有一些经验。更新:您所有的回答都非常有助于理解问题。澄清一下,这是否意味着JavaScript比其他动态语言更难实现?这是否也意味着我最好使用基于